package com.xmy.cultivate.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 排课表
 * </p>
 *
 * @author min
 * @since 2022-07-28
 */
@TableName("course_scheduling")
@Data
public class CourseScheduling implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    
    private Long id;

    /**
     * 上课日期
     */
    private String attendClassDates;

    /**
     * 上课时段开始
     */
    private String timeStart;

    /**
     * 上课时段结束
     */
    private String timeEnd;


    private String startHouse;

    private String endHouse;

    private String startMinute;

    private String endMinute;

    /**
     * 班级id
     */
    
    private Long gradeId;

    private Long courseId;

    /**
     * 教室
     */
    
    private Long classRoomId;

    
    private Long subjectsId;

    /**
     * 排课方式，1自由排课，2是重复排课
     */
    private Integer arrangingWay;

    /**
     * 创建人
     */
    
    @TableField(fill = FieldFill.INSERT)
    private Long createdId;

    /**
     * 任课教师id
     */
    private Long teacherId;

    /**
     * 助教id
     */
    private Long assistantId;

    /**
     * 助教教师id
     */
    //private Long helpTeacherId;

    @TableLogic
    private Integer deleted;

    /**
     * created_at
     */
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdAt;

    /**
     * updated_at
     */
    @TableField(fill = FieldFill.UPDATE)
    private LocalDateTime updatedAt;

    /**
     * deleted_at
     */
    private LocalDateTime deletedAt;

    
    private Long schoolId;

    /**
     * 接收重复排课信息
     */
    @TableField(exist = false)
    private List<CourseSchedulingRedo> redoList;


}
